perm filename MACROS.1[CLS,LSP] blob
sn#833448 filedate 1987-02-12 generic text, type T, neo UTF8
\let\sub_
%\let\sub←
% fonts
\def\Font#1{\def\next{\fixfont#1}\afterassignment\next\font#1}
\def\fixfont#1{\fontdimen3#1=0pt\fontdimen4#1=0pt}
\def\sc {scaled}
\let\mh \magstephalf \def\mi {\magstep1}
\def\mii {\magstep2} \def\miii {\magstep3}
\def\ndefstruct{ndefstruct}
\def\defmethod{defmethod}
\def\MOP:{Meta-Object Protocol:}
\def\CLOS{Common Lisp Object System}
\def\OS{Object System}
\def\beginImplNote
{\begingroup\advance\rightskip 2pc\advance\leftskip 2pc
%\noindent\hskip-3pc %lgd delete this line to indent IN header
{\bf Implementation Note: }\hfil\break}
\def\endImplNote{\par\endgroup}
% Added this - rpg
\def\beginTermNote
{\begingroup\advance\rightskip 2pc\advance\leftskip 2pc
%\noindent\hskip-3pc %lgd delete this line to indent IN header
{\bf Terminology Note: }\hfil\break}
\def\endTermNote{\par\endgroup}
\def\beginRemarks
{\begingroup\advance\rightskip 2pc\advance\leftskip 2pc
%\noindent\hskip-3pc %lgd delete this line to indent IN header
{\bf Remarks: }\hfil\break}
\def\endRemarks{\par\endgroup}
% end of what rpg added
% press medium (family 0)
\Font\prmfive = cmr5 % changed amr fonts to cmr fonts --lgd
\Font\prmseven = cmr7
\Font\prmeight = cmr8
\Font\prmten = cmr10
%\Font\prmeleven = cmr10 \sc \mh
\Font\prmtwelve = cmr10 \sc \mi
% press bold
\Font\prbseven = cmbx7 % changed amb fonts to cmb fonts --lgd
\Font\prbeight = cmbx8
\Font\prbnine = cmbx9
\Font\prbten = cmbx10
\Font\prbeleven = cmbx10 \sc \mh
\Font\prbtwelve = cmbx10 \sc \mi
\Font\prbfourteen=cmbx10 \sc \mii
\Font\prbsixteen= cmbx10 \sc \miii
\Font\prbeighteen=cmbx10 \sc \miii
% press italics
\Font\priseven = cmti7
\Font\prieight = cmti8
\Font\priten = cmti10
%\Font\prieleven = cmti10 \sc \mh
%\Font\prieleven = amti10 \sc \mh
\Font\pritwelve = cmti10 \sc \mi % jeb: added 18/nov/86
% press bold italics
\Font\prbiten = cmbxsl10
%\Font\prbieleven= cmbxsl10 \sc \mh
% letter gothic
\Font\lgseven = cmtt9
\Font\lgnine = cmtt9
% math italic (family 1) % math symbols (family 2)
\font\mifive = cmmi5 \font\syfive = cmsy5
\font\miseven = cmmi7 \font\syseven = cmsy7
\font\mieight = cmmi8 \font\syeight = cmsy8
\font\miten = cmmi10 \font\syten = cmsy10
%\font\mieleven = cmmi10 \sc \mh \font\syeleven = cmsy10 \sc \mh
\font\bmiten = cmbi10 \font\bsyten = cmbsy10
%\font\bmieleven = cmbi10 \sc \mh \font\bsyeleven = cmbsy10 \sc \mh
\font\bmitwelve = cmbi10 \sc \mi \font\bsytwelve = cmbsy10 \sc \mi
\font\bmifourteen= cmbi10 \sc \mii \font\bsyfourteen= cmbsy10 \sc \mii
\font\bmisixteen = cmmi10 \sc \miii \font\bsysixteen = cmsy10 \sc \miii
\font\bmieighteen= cmmi10 \sc \miii \font\bsyeighteen= cmsy10 \sc \miii
\newif \iftt
\newif \ifbf
\newif \ifsphy \sphyfalse
\def\tenpoint
{\let\bit\prbiten
\let\bbf\prbeleven
\def\rm{\fam0\prmten\textfont7\miten \textfont8\syten \ttfalse\bffalse}%
\def\bf{\fam4\prbten\textfont7\bmiten\textfont8\bsyten\ttfalse\bftrue}%
\def\it{\fam5\priten\textfont7\miten \textfont8\syten \ttfalse\bffalse}%
\def\tt{\catothers\fam6\lgnine\textfont7\miten\textfont8\syten\tttrue\bffalse}%
\textfont0=\prmten \scriptfont0=\prmseven \scriptscriptfont0=\prmfive
\textfont1=\miten \scriptfont1=\miseven \scriptscriptfont1=\mifive
\textfont2=\syten \scriptfont2=\syseven \scriptscriptfont2=\syfive
\textfont4=\prbten \scriptfont4=\prbseven
\textfont5=\priten \scriptfont5=\priseven
\textfont6=\lgnine
\baselineskip 11pt\rm
}
\def\elevenpoint
{\let\bit\prbieleven
\let\bbf\prbtwelve
\def\rm{%
\fam0\prmeleven\textfont7\mieleven \textfont8\syeleven \ttfalse\bffalse}%
\def\bf{%
\fam4\prbeleven\textfont7\bmieleven\textfont8\bsyeleven\ttfalse\bftrue}%
\def\it{%
\fam5\prieleven\textfont7\mieleven \textfont8\syeleven \ttfalse\bffalse}%
\def\tt{\catothers
\fam6\lgnine \textfont7\mieleven \textfont8\syeleven \tttrue \bffalse}%
\textfont0=\prmeleven \scriptfont0=\prmeight \scriptscriptfont0=\prmfive
\textfont1=\mieleven \scriptfont1=\mieight \scriptscriptfont1=\mifive
\textfont2=\syeleven \scriptfont2=\syeight \scriptscriptfont2=\syfive
\textfont4=\prbeleven \scriptfont4=\prbeight
\textfont5=\prieleven \scriptfont5=\prieight
\textfont6=\lgnine
\baselineskip 12pt\rm
}
\def\twelvepoint
{\let\rm\prmtwelve
\let\bf\prbtwelve
\baselineskip 13pt
\rm
}
\def\bftwelve
{\fam4\prbtwelve \textfont7\bmitwelve \textfont8\bsytwelve \bftrue\ttfalse}
\def\bffourteen
{\fam4\prbfourteen\textfont7\bmifourteen\textfont8\bsyfourteen\bftrue\ttfalse}
\def\bfsixteen
{\fam4\prbsixteen \textfont7\bmisixteen \textfont8\bsysixteen \bftrue\ttfalse}
\def\bfeighteen
{\fam4\prbeighteen\textfont7\bmieighteen\textfont8\bsyeighteen\bftrue\ttfalse}
\let\normaltype=\elevenpoint
\def\marginstyle{\ttfalse\bffalse\vrule height6pt depth2pt width0pt\prmseven}
\let\df\tt
% page layout
\newskip \normalleftskip \normalleftskip=10pc
\newskip \comleftskip \comleftskip = 6pc
\newskip \normalparskip \normalparskip = 1pc
\newdimen \combarht \combarht = 1pt
\hsize 40pc \vsize 43pc %lgd make bigger for longer page 43pc=7+1/6 in. (6 pc = 1 in.)
\topskip 2pc
\leftskip \normalleftskip \rightskip 0pc plus 3pc
\parindent 0pc
\parskip \normalparskip
\let\NIS=\nointerlineskip
\def\NIPS{\NIS\parskip 0pc\relax}
\def\removedepth{\ifdim \prevdepth>-1000pt \vskip -\prevdepth\fi}
\def\Vskip #1!{\endgraf
\removedepth
\ifdim \lastskip<#1 \ifdim \lastskip>0pc \removelastskip\fi \vskip#1\NIPS\fi}
\def\par{\ifvmode\else\endgraf
\removedepth
\NIS\parskip \normalparskip\relax\fi}
\let\normpar=\par
\def\shortpar{\begingroup\def\par{\endgraf\endgroup\normpar}
\advance\rightskip\leftskip}
\newdimen \fullhsize \fullhsize=40pc
\def\fullline{\hbox to \fullhsize}
\newtoks \headline \newtoks \footline
\countdef\pageno=0 \pageno=-1
\let\chapno = \empty
\newskip\iskip \newskip\iiskip \newskip\iiiskip
\newbox \firstcolbox \newbox \othercolbox
\newwrite \tocfile \openout \tocfile \jobname.toc
\newwrite \figfile \openout \figfile \jobname.fig
\newwrite \idxfile \openout \idxfile \jobname.idx
\write\idxfile{}
\newcount\capno \capno=1
\newbox\comline
\newinsert \idxins
\dimen\idxins=\maxdimen
\count\idxins=0
\skip\idxins = 0pt
\newif \ifsilent
\newif \ifbold
% output routines
\newif \iffooter % if there a footer
\newif \ifticks % positioning lines for output
\newif \ifcomfirst % header in command chapter
\newif \ifproofmode % exhibit index entries
%\hoffset 1.0in
%\voffset 1.0in %addition--lgd
\def\bspout#1{\shipout\vbox
{\baselineskip 12pt
\hbox{\prmten Draft}\hbox{\prmten \timestamp}
\offinterlineskip
\vskip 2pc
\ifticks\topticks\fi
\makeheadline
\makepagerule
\ifproofmode\listindex\fi
\vbox to 45pc {#1\vss\makefootline} %lgd should be 2 pc bigger than \vsize
\ifticks\botticks\fi
%\vskip 1pc
%\hbox{\prmeight Copyright \copyright\ 1986 Xerox Corporation.
%All Rights Reserved.}
}
\advancepageno
\global\comfirstfalse
}
\def\makepagerule{\hrule height1.5pt width \fullhsize}
\def\makeheadline{\setbox0=\fullline{\the\headline}\ht0=1pc\dp0=4.5pt\box0}
\headline={\prbfourteen\ifcomfirst\else
\ifodd\pageno\hss\copy\comline\else\copy\comline\hss\fi\fi}
\def\makefootline{\iffooter\setbox0=\fullline{\the\footline}\dp0=.5pc\box0\fi}
\footline={\normaltype
\ifodd\pageno\hss\chapline\ \ \folio\else\folio\ \ \bookline\hss\fi}
\def\folio{{\bf\pagenumber}}
\def\pagenumber
{\ifnum\pageno>0 \chapno--\the\pageno\else\romannumeral-\pageno\fi}
\def\listindex
{\ifvoid\idxins\else\rlap{\kern41pc\vbox to0pc{\kern4pt\unvbox\idxins\vss}}\fi}
\def\advancepageno{\ifnum\pageno<0 \global\advance\pageno -1
\else\global\advance\pageno 1\fi} % increase |pageno|
\def\normalpage{\unvbox255\relax}
\output{\bspout\normalpage}
{
\count0=\time
\count2=\time\divide\count2 by 60\multiply\count2by60\advance\count0by-\count2
\count2=\time\divide\count2 by 60
\xdef\timestamp{\ifcase\month\or
Jan\or Feb\or Mar\or Apr\or May\or Jun\or Jul\or Aug\or
Sep\or Oct\or Nov\or Dec\fi\space\number\day, \number\year\space\space
\the\count2:\ifnum\count0<10\relax0\fi\the\count0}
}
\def\topticks
{\setbox0=\fullline{\hskip-1pc\vrule height .2pt width 1pc\relax
\hskip -.2pt\vrule height 1pc width .2pt\hfil
\vrule height 1pc width .2pt\hskip -.2pt\relax
\vrule height .2pt width 1pc\hskip -1pc}\ht0=0pc\box0}
\def\botticks
{\setbox0=\fullline{\hskip-1pc\vrule height 0pt depth .2pt width 1pc\relax
\hskip -.2pt\vrule height 0pt depth 1pc width .2pt\hfil
\vrule height 0pt depth 1pc width .2pt\hskip -.2pt\relax
\vrule height 0pt depth .2pt width 1pc\hskip -1pc}\dp0=0pc\box0}
\def\pageticks{\tickstrue}
\def\nopageticks{\ticksfalse}
\def\footers{\footertrue}
\def\nofooters{\footerfalse}
% lgd: changed \pageticks to \nopageticks
\setbox\comline \null \let\bookline\empty \let\chapline\empty
\footers \nopageticks \proofmodetrue
% Tables of Contents
\def\dotleader{\leaders\hbox to 6pt {\hfil\prmfive.\hfil}\hfill}
% Added \numitem macro from RPG's macros
% start \numitem
\def\numhangsize{25pt}
\def\yskip{\penalty-50\vskip 3pt plus 3pt minus 2pt}
\def\numtextindent#1{\noindent\hbox to \numhangsize{\hskip 0pt plus 1000pt minus 1000pt#1\ }}
\def\numhang{\hangindent \numhangsize}
\def\numitem#1{\yskip\numhang\numtextindent{#1}}
% end \numitem
{\obeylines
\gdef\Czero#1
{\Vskip1pc!\bbf #1\par}
\gdef\Cone#1\!#2
{\Vskip1pc!\bbf #1\dotleader#2\hskip-5pc\null\par}
\gdef\Ctwo#1\!#2
{\hangindent1pc\rm #1\dotleader#2\hskip-5pc\null\par}
\gdef\Cthree#1
{}
\global\let\Cfour\Cthree
\global\let\Pzero\Cthree
\global\let\Pone \Cthree
\gdef\Ptwo#1\!#2
{\leftskip 0pt\hangindent 1pc\rm#1\dotleader#2\hskip-5pc\null\par}
\gdef\Pthree#1\!#2
{\leftskip 1pc\rm#1\dotleader#2\hskip-5pc\null\par}
\global\let\Pfour\Cthree
}
\def\toc
#1#2{{\let\break=\empty
\xdef\writeit{\write\tocfile{!#1#2!!\noexpand\pagenumber}}\writeit}}
\toc4{}
\def\PTOC
{\HeadIV{CONTENTS}
{\let\0\Pzero\let\1\Pone\let\2\Ptwo\let\3\Pthree\let\4\Pfour
\let\par=\endgraf\parskip 0pt\parfillskip 0pt
\rightskip 5pc plus 15pc\hangindent1pc
\obeylines\catcode`\!=0\relax\input\jobname.tc\relax}
\vfil\break\ifodd\pageno\else\null\vfil\break\fi
}
% Headers
% note: Head Levels 0 and 1 should appear only at the top of a page.
% note: same for \altHeadII
\def\Head #1{\toc0{#1}{\bfeighteen
\baselineskip 20pt\leftskip 0pt plus 1fill \rightskip 0pt
\vglue -10pt\null #1\par}\Vskip 5pc!}
\def\HeadI #1{\toc1{#1}{\bfeighteen
\baselineskip 20pt\leftskip 0pt plus 1fill \rightskip 0pt
\vglue -10pt\null #1\par}\Vskip 5pc!}
\def\HeadII #1{\Vskip 3pc!\toc2{#1}{\bfsixteen
\baselineskip 18pt\leftskip 0pt \rightskip 0pt plus 1fil
\relax #1\par}\Vskip 2pc!}
\def\HeadIII#1{\Vskip 2pc!\toc3{#1}{\bffourteen
\baselineskip 16pt\leftskip 0pt \rightskip 0pt plus 1fil
\relax #1\par}\Vskip 1pc!}
\def\HeadIV #1{\Vskip 2pc!\toc4{#1}{\bftwelve
\baselineskip 13pt \leftskip 0pt \rightskip 0pt plus 1fil
\relax #1\par}\Vskip 1pc!}
\def\HeadV #1{\Vskip1.5pc!{\elevenpoint\bf
\leftskip 4pc \rightskip 0pt plus 1fil
\relax #1\par}\Vskip 1pc!}
\def\altHeadII #1{\refalt\toc2{#1}{\bfsixteen
\baselineskip 18pt \leftskip \normalleftskip \rightskip 0pt plus 1fil
\relax #1\par}\Vskip 4pc!}
\let\refalt\empty
\def\refHeadIV #1{\Vskip 1pc!\toc4{#1}{\bftwelve
\baselineskip 13pt \leftskip 0pt \rightskip 0pt plus 1fil
\relax #1\par}\Vskip \normalparskip!}
% Lists
\def\bull
{\ifmmode\bullet\else$\bullet$\fi}
\def\listlabel
#1{\noindent\hbox to 0pc{\hskip -1.5pc #1\hss}\ignorespaces}
\def\item #1{\par\leftskip\iskip \listlabel{#1}}
\def\itemitem #1{\par\leftskip\iiskip \listlabel{#1}}
\def\itemitemitem #1{\par\leftskip\iiiskip\listlabel{#1}}
\def\beginlist
{\begingroup\iiiskip=\leftskip \advance\iiiskip 1.5pc\iskip =\iiiskip
\advance\iiiskip 1.5pc\iiskip =\iiiskip \advance\iiiskip 1.5pc
\Vskip 1pc!}
\def\endlist
{\par\endgroup\Vskip 1pc!}
\def\beginBSPTCL
{\begingroup
\leftskip=0pc
\Vskip 2pc!}
\let\endBSPTCL\endTwoColumnList
\def\beginTwoColumnList{\begingroup}
\def\beginTCL{\begingroup
\let\par\endgraf\parskip0pt\normalparskip 0pt}
\def\firstcolumn
{\advance\hsize -\leftskip \advance\hsize -\rightskip \advance\hsize -2pc
\divide \hsize by 2
\leftskip 0pt \rightskip 0pt plus 2pc
\iskip =1.5pc \iiskip =3pc \iiiskip=4.5pc
\global\setbox\firstcolbox=\vbox}
\def\secondcolumn
{\global\setbox\othercolbox=\vbox}
\def\endTCL
{\dimen3=-\dp\firstcolbox \dimen7=-\dp\othercolbox
\global\setbox1\vtop{\unvbox\firstcolbox}
\global\setbox3\vtop{\unvbox\othercolbox}
\global\advance\dimen3 \dp1 \global\advance\dimen7 \dp3
\ifdim \dimen7>\dimen3 \global\dimen3=\dimen7\fi
\dimen1 =\ifdim \ht1>\ht3 \ht1\else \ht3\fi \relax
\vskip\dimen1\vglue-\dimen1\relax
\global\wd1=\hsize \global\wd3=\hsize
\endgroup
\ifinner\else\Vskip1pc!\fi
\hbox{\hskip\leftskip\raise\dimen3\box1\hskip2pc\raise\dimen3\box3}
\ifinner\else\Vskip1pc!\fi}
\let\endTwoColList\endTCL
% screen text examples
{\obeylines\gdef\eatcr#1
{}}
\chardef\bslash=`\\
\def\prompt{>}
\chardef\other=12
{\obeyspaces\global\let =\ }
\def\catothers
{\catcode`\&=\other \catcode`\#=\other
\catcode`\↑=\other \catcode`\↑↑A=\other
\catcode`\↑↑X=\other
\catcode`\%=\other}
\def\screen!{\ifvmode\Vskip\normalparskip!\fi\begingroup
\baselineskip 11pt\tt
\parfillskip 0pt plus1fil
\parskip 0pt
\def\par{\leavevmode\endgraf}%
\catcode`\$=\other
\let\>=\prompt
\catcode `\{=\other \catcode`\}=\other
\obeyspaces\obeylines\eatcr}
\def\endscreen!{\endgraf\endgroup\Vskip\normalparskip!}
\def\widescreen{\Vskip \normalparskip!\begingroup
\leftskip 0pc
\baselineskip 11pt\tt
\parfillskip 0pt plus1fil
\parskip 0pt
\def\par{\leavevmode\endgraf}
\catcode`\$=\other
\let\>=\prompt
\catcode `\{=\other \catcode`\}=\other
\obeyspaces\obeylines\eatcr}
% notes
\def\note{\Vskip 1pc!{\bf Note:} }
\def\longnote{\Vskip 1pc!\begingroup \advance\leftskip 1.5pc {\bf Note:} }
\def\notes{\Vskip 1pc!{\bf Notes:}\par\beginlist}
\let\endlongnote=\endlist \let\endnotes =\endlist
% Danger, Caution, and Warning paragraphs
\def\Danger{\begingroup \twelvepoint\bf \def\par{\normpar\endgroup}
DANGER\hfil\break}
\def\Caution{\begingroup \twelvepoint\bf \def\par{\normpar\endgroup}
CAUTION\hfil\break}
\def\Warning{\begingroup \twelvepoint\bf \def\par{\normpar\endgroup} Warning:
}
% Fast Path
\def\beginFastPath #1{\begingroup \endgraf \def\FPname{#1} \leftskip 1pc \hsize
358pt \global\setbox1=\vbox}
\def\endFastPath {\Vskip1pc!\moveright 10pc \vbox{\hbox to 30pc{\vrule height
1pt width 2pc\hskip.5pc\raise .5pt\vbox to0pc {\vss\hbox{\prbtwelve
\FPname}\vss}\hskip .5pc\leaders\hrule height1pt\hfil } \NIS\hbox{\vrule width
1pt\box1\vrule width 1pt}\NIS \hrule height 1pt} \endgroup \Vskip1pc!}
\def\MDI{\Vskip2pc!\hbox{\prbfourteen More Detailed Information}\Vskip1pc!}
% Figures
%Syntax:
% \boxfig (or \cboxfig) (or \rulefig) (or \fig)
% { }
% \caption{ }
% \endfig
\gdef\figtype{0}
\def\fig
{\gdef\figtype{0}
\begingroup\leftskip0pt
\global\setbox1=\vbox}
\def\finishfig
{\endgroup
\Vskip1pc!
\moveright\leftskip\box1
\vskip 1pc
\docaption
\Vskip1pc!
}
\def\rulefig
{\gdef\figtype{1}
\begingroup\leftskip0pt
\global\setbox1=\vbox}
\def\finishrulefig
{\endgroup
\Vskip1pc!
\fullline{\hskip\leftskip\leaders\hrule height1pt depth0pt\hfil}
\Vskip1.5pc!
\moveright\leftskip\box1
\Vskip1pc!
\docaption
\Vskip1pc!
\fullline{\hskip\leftskip\leaders\hrule height1pt depth0pt\hfil}
\Vskip1pc!}
\def\boxfig
{\gdef\figtype{2}
\begingroup
\advance\hsize by -\leftskip\advance\hsize by -\rightskip
\advance\hsize -2pt
\leftskip 1pc
\rightskip 1pc plus 2pc
\global\setbox1=\vbox}
\def\cboxfig
{\gdef\figtype{2}
\begingroup
\advance\hsize by -2\leftskip
\advance\hsize -2pt
\leftskip 2pc
\rightskip 2pc plus 2pc
\global\setbox1=\vbox}
\def\finishboxfig
{\wd1=\hsize
\endgroup
\Vskip1pc!
\vglue 0pt
\moveright\leftskip\vbox{\hrule height1pt
\hbox{\vrule width 1pt
\vbox{\hrule height0pt width \wd1\vskip1pc\unvbox1\Vskip1pc!}\vrule width1pt}
\NIS\hrule height1pt}
\Vskip1pc!
\docaption
\Vskip1pc!
}
\def\endfig
{\ifcase\figtype\relax\finishfig\or\finishrulefig\or\finishboxfig\fi}
\def\caption#1{\gdef\captext{\chapno--\the\capno. #1}}
\let\captext=\empty
\def\makecapline
{\vbox{\leftskip 0pt\noindent\prbnine Figure \captext}\figlist2\global\advance\capno 1\relax}
\def\docaption
{\ifx\captext\empty
\else\moveright\leftskip\makecapline\fi\global\let\captext\empty}
\def\figlist
#1{\xdef\writeit{\write\figfile{!#1\captext!!\noexpand\pagenumber}}\writeit}
\figlist4
% user guide chapter stuff
\newbox\comline
\def\beginChapter
#1.#2#3#4{\pageno=1\capno=1\relax
\def\chapno{#1}\def\chapline{#4}\setbox\comline\null
\Head {#2}
\HeadI {#1. #3}
% \HeadI{Part #1. #2} %lgd: was Chapter
\begingroup
\leftskip \normalleftskip \rightskip 6pc plus 2pc
\vfill}
\def\endTitlePage
{\par\endgroup\vskip 2pc\break
\normaltype
\PTOC
}
\def\beginAppendix
#1.#2#3{\pageno=1\capno=1\relax
\def\chapno{#1}\def\chapline{#3}\setbox\comline\null
\HeadI{Appendix #1. #2}
\leftskip\normalleftskip
\normaltype
}
\def\bookintro
{\pageno=-3\capno=1\relax
\def\chapno{}\def\chapline{About This Book}\setbox\comline\null
\leftskip\normalleftskip
\HeadI{About This Book}
}
\def\beginIntro
{\leftskip \normalleftskip
\altHeadII{About This Chapter}}
\def\beginSection
#1{\leftskip\normalleftskip
\HeadII{#1}}
\def\beginSubsection
#1{\HeadIII{#1}}
\def\beginsubsubsection
#1{\HeadIV{#1}}
\def\endIntro{\ifdim \pagetotal>0pc \vfil\break\fi}
\let\endSection=\endIntro
\let\endSubsection\empty
\let\endsubsubsection\empty
\let\endcom=\endSection
\let\beginSubSection=\beginSubsection
\let\endSubSection=\endSubsection
\let\beginsubSection=\beginSubsection
\let\endsubSection=\endSubsection
\def\endChapter
{\endSection\ifodd\pageno\else\setbox\comline\null\null\vfil\break\fi}
\let\endAppendix\endChapter
\def\label
#1:{\noindent\hbox to 0pc{\bf\hskip-6pc#1:\hss}\ignorespaces}
\def\begincom
{\begingroup\catcode`\,=\active\catcode`\-=\active\dobegincom}
\newdimen \dotw
\setbox0=\hbox{\prbfourteen, $\ldots$}
\global\dotw=\wd0
\def\hyphen{-}
\def\comma{,}
\def\specialcomma
{\discretionary{\kern\dotw\vrule width0pt}{}{,\kern\fontdimen2
\prbfourteen}\ignorespaces}
{\catcode`\,\active\catcode`\-=\active
\gdef\dospecialcomma{\let,\specialcomma\sphytrue}
\gdef\donormalcomma{\let,\comma}
\gdef\begincomindex#1{\global\let\NEXT\bcindex\bcindex #1, \endit, \relax}
\gdef\bcindex#1, {\ifx\endit#1\global\let\NEXT\empty
\else\silenttrue\boldtrue\xref{#1}\fi\NEXT}}
\donormalcomma
\def\dobegincom
%#1{\leftskip0pc\rightskip0pc plus10pc\bffourteen %nov16
#1\ftype #2{\leftskip0pc\rightskip0pc plus10pc\bffourteen %nov16
\baselineskip 16pt
\dospecialcomma\let\break=\ignorespaces
\global\setbox1=\vbox{\hsize 40pc\lowercase{#1}}
\vbadness 10000
\setbox0=\vsplit1 to 16pt
\setbox0=\vbox{\unvbox0\global\setbox3\lastbox}
\global\setbox1\hbox{\unhbox3\relax\ifdim\ht1>0pt\llap{, $\ldots$}\fi}
\global\setbox\comline\box1
% \begincomindex{#1} %%% This line causes index entries.
\endgroup
\comfirsttrue
\leftskip \comleftskip
%\HeadII{#1} nov/16 change
\Vskip 3pc!
\hbox to \fullhsize{\toc2{#1}\bfsixteen #1\hfil\pritwelve #2}
\Vskip 2pc! %%% Previous 3 line are new header nov/16
\hrule height \combarht
\parskip \normalparskip
\vbox to 0pc{}
}
\let\vv=\vtop
\def\Vtop #1{\setbox0=\vbox{#1}\dimen2=\ht0\setbox2=\null\dp2=\dp0\setbox0=\vv
{\unvbox0}\advance\dimen1 by -\ht0\ht2=\dimen2\vadjust
{\penalty 10000\box2}\dp0=0pt\box0}
\def\Defmac #1 #2{\let\vtop\Vtop\bf #1 {\it #2} \hfill\brac{\it Macro\/}
\Vskip\normalparskip!}
\def\Defmeth #1 #2{\let\vtop\Vtop\bf #1 {\it #2} \hfill\brac{\it Method\/}
\Vskip\normalparskip!}
\def\Defun
#1 #2{{\let\vtop=\Vtop\bf #1 {\it #2}\hfill\brac{\it Function\/}}
\Vskip\normalparskip!}
\def\Defvar
#1 {{\let\vtop=\Vtop\bf \ST#1\ST \hfill\brac{\it Variable\/}}
\Vskip\normalparskip!}
\def\Defgen
#1 #2{{\let\vtop=\Vtop\bf #1 {\it #2}\hfill\brac{\it Generic function\/}}
\Vskip\normalparskip!}
\def\Defvarnoast
#1 {{\let\vtop=\Vtop\bf #1 \hfill\brac{\it Variable\/}}
\Vskip\normalparskip!}
\def\Defcon
#1 {{\let\vtop=\Vtop\bf #1 \hfill\brac{\it Constant\/}}
\Vskip\normalparskip!}
\def\Defspec
#1 #2 {{\let\vtop=\Vtop\bf #1 {\it #2} \hfill\brac{\it Special Form\/}}
\Vskip\normalparskip!}
\def\Defdebug
#1 {{\let\vtop=\Vtop\tt #1 \hfill\brac{\it Debugger Command\/}}
\Vskip\normalparskip!}
\def\defFormat{\begingroup\catothers\catcode`\$=12\relax\doformat}
\def\doformat
#1 (#2) #3{\Vskip2pc!{#1}\hskip 2pc{\rm ({#2})}\hfill{#3}\par
\endgroup
\Vskip\normalparskip!}
\def\rest {\tt\&rest}
\def\body {\tt\&body}
\def\opt {\tt\&optional}
\def\key #1{\tt\&key #1}
\def\star #1{#1{\rm *}}
\def\form {\curly{form}}
\def\place{\curly{place}}
\def\paren #1{\rm({\it #1\/})}
\def\brac #1{\rm[{\it #1\/}]}
\def\ttbrac #1{\tt[{\it #1\/}]}
\def\curly #1{$\{${\it #1\/}$\}$}
\def\plus #1{$\hbox{#1}↑+$}
\def\placeplus{ $\{${\it place}$\}↑+$}
\def\lparen{{\rm (}}
\def\rparen{{\rm )}}
\def \Lucid{This is a Lucid extension to Common Lisp.\par}
\def \Lucids{These are Lucid extensions to Common Lisp.\par}
% Index
\let\indexb=b
\def\specialhat{\ifmmode\def\next{↑}\else\let\next\beginxref\fi\next}
\def\beginxref{\futurelet\next\silentswitch}
\def\silentswitch{\ifx\next\specialhat \let\next\silentxref
\else\silentfalse\let\next\contxref\fi \next}
\def\contxref{\futurelet\next\boldswitch} \def\boldswitch {\ifx \next\indexb
\let\next\boldxref \else\boldfalse\let\next\xref\fi \next}
{\catcode`\↑=\active
\global\let ↑=\specialhat
\gdef\silentxref ↑{\silenttrue\contxref}
\gdef\boldxref b{\boldtrue \xref}
}
\def\xref
#1{\ifproofmode\insert\idxins{\hbox{\marginstyle\ifbold\llap{b }\fi#1}}\else
\ifhmode\kern0pt\fi\fi
{\setspecialdefs\let\break=\empty
\ifbold\xdef\writeit{\write\idxfile{#1!1!\noexpand\pagenumber}}\else
\xdef\writeit{\write\idxfile{#1!2!\noexpand\pagenumber}}\fi}%
\writeit
\ifsilent\ignorespaces\else#1\fi
}
\def\doindex#1{\def\finishentry{}\begingroup\let\finishentry\normalentry
\let\par\endgraf\parskip 0pt
\catcode`\!=0\let\1\Ione\let\2\Itwo\expandafter\startentry\input #1\relax}
\gdef\normalentry#1.
{\hangindent1pc #1\par\startentry}
\def\startentry#1\ #2\ {\ifcase
#2\relax\indexbox{#1}\or
#1\ \ \or
*#1*\ \ \or
\endgroup\or
:#1\ \ \fi
\finishentry}
\def\indexbox#1{\Vskip2.5pc!\vglue-.5pc\setbox0\hbox{\hskip 3pt\prbtwelve #1}
\ht0=13pt\dp0=3pt\wd0=16pt
\moveright 44pt\vbox{\hrule height1pt depth 0pt
\hbox{\vrule width 1pt\box0\vrule width 1pt}\hrule height 1pt depth 0pt}
\Vskip 1pc!}
\def\Ione\ #1\ #2\ {$\underline{\hbox{#1--#2}}$}
\def\Itwo\ #1\ #2\ {\hbox{#1--#2}}
% Change markers
\everypar {\parchange\gdef\parchange{}}
\gdef\parchange{}
\def\changestrut{\vrule height0pt width0pt depth1\changedepth}
\def\dochange#1{\changestrut\vadjust{\kern-1\changedepth
\setbox0
\hbox{\hskip 40pc\normaltype#1}\wd0=0pt\ht0=0pt\dp0=1\changedepth\box0}\ignorespaces}
\def\makechange
#1#2{\def#1{\ifvmode\gdef\parchange{#1}\else\dochange{#2}\fi\ignorespaces}}
\makechange\change {$\clubsuit$}
\makechange\beginchange {$\downarrow \clubsuit$}
\makechange\endchange {$\uparrow \clubsuit$}
\makechange\new {$\heartsuit$}
\makechange\beginnew {$\downarrow\heartsuit$}
\makechange\endnew {$\uparrow \heartsuit$}
\makechange\delete {$\diamondsuit$}
\let\normaltype\tenpoint
\newdimen \changedepth
\changedepth=0.15\baselineskip
% character hacks
\mathchardef \spLT "73C % <
\mathchardef \spGT "73E % >
\mathchardef \spST "803 % *
\mathchardef \spBS "86E % \
\mathchardef \spMI "800 % -
\mathchardef \spVB "86A % |
\mathchardef \spTI "818 % ~
\def\LT{\ifmmode\spLT\else\iftt<\else$\spLT$\fi\fi}
\def\GT{\ifmmode\spGT\else\iftt>\else$\spGT$\fi\fi}
\def\ST{\ifmmode\spST\else\ifbf$\spST$\else*\fi\fi}
\def\BSlash{\ifmmode\spBS\else\iftt\bslash\else$\spBS$\fi\fi}
\def\VB{\ifmmode\spVB\else\iftt|\else$\spVB$\fi\fi}
\def\US{\iftt\←\fi}
\def\MI{\ifbf\ifmmode\spMI\else\ifsphy\hbox{-}\else-\fi\fi\else-\fi}
\def\AT{\iftt\hbox to.5em{\hss\prmseven@\hskip.5pt\hss}\else@\fi}
\def\TI{\iftt\char'176\relax\else\penalty10000\ \fi}
\let\LB=\{
\let\RB=\}
\def\{{\iftt\char'173\relax\else\LB\fi}
\def\}{\iftt\char'175\relax\else\RB\fi}
\def\ngt{>}
\def\nlt{<}
\def\nst{*}
\let\\=\BSlash
\catcode `\←=9\relax
\def\tilde{\ifbf$\spTI$\else{\tt\char126\relax}\fi}
\catcode `\<=\active \global\let<=\LT
\catcode `\>=\active \global\let>=\GT
\catcode `\|=\active \global\let|=\VB
\catcode `\*=\active \global\let*=\ST
\catcode `\@=\active \global\let@=\AT
\catcode `\←=\active \global\let←=\US
\catcode `\-=\active \global\let-=\MI
\global\let~=\TI
\gdef\setspecialdefs
{\let-=\hyphen \let>=\ngt \let<=\nlt \let*=\nst
\def\bf{\string\bf}\def\\{\string\\}\def\it{\string\it}\def\tt{\string\tt}}
\catcode `\↑ = \active
\def\uspace{{\tentt\char'40}}
%% ref.tex merged in here-- lgd
\normalleftskip= 4pc
\comleftskip = 4pc
%\normalparskip = .5pc
\let\normaltype=\tenpoint
\normaltype
\def\label
#1:{\Vskip 1pc!\hbox{\prbtwelve #1:}\Vskip \normalparskip!}
\let\HeadIV=\refHeadIV
\def\refalt{\vglue -8pt\null}
%\hoffset 1in
\def\bspout#1{\shipout\vbox
{\baselineskip 12pt
\hbox{\prmten Draft}\hbox{\prmten \timestamp}
\offinterlineskip
\vskip 2pc
\ifticks\topticks\fi
\makeheadline
\makepagerule
\listindex
\vbox to 45pc {#1\vss\makefootline}
\ifticks\botticks\fi
%\vskip 1pc
%\hbox{\prmeight Copyright \copyright\ 1986 Xerox Corporation.
%All Rights Reserved.}
}
\advancepageno
\global\comfirstfalse
}